package model

const (
	SubscribeDetailTypeApeList                SubscribeDetailType = "3"
	SubscribeDetailTypeTollgateList           SubscribeDetailType = "7"
	SubscribeDetailTypeLaneList               SubscribeDetailType = "9"
	SubscribeDetailTypePersonCapture          SubscribeDetailType = "11"
	SubscribeDetailTypeFaceCapture            SubscribeDetailType = "12"
	SubscribeDetailTypeMotorVehicleCapture    SubscribeDetailType = "13"
	SubscribeDetailTypeNonMotorVehicleCapture SubscribeDetailType = "14"
)

// 通知对象特征属性
type SubscribeNotification struct {
	// 通知标识; 必选; 该订阅通知标识符;required
	NotificationID string
	// 订阅标识; 必选; 订阅标识;required
	SubscribeID string
	// 订阅标题; 必选; 描述订阅的主题和目标;required
	Title string
	// 触发时间; 必选;required
	TriggerTime string
	// 信息标识; 必选; 订阅通知的详细信息(人、车、物、场景)标识集合;required
	InfoIDs string
	// 视频案事件; 可选; 视频案事件信息数据集
	CaseObjectList *CaseListObject `json:",omitempty"`
	// 视频卡口; 可选; 视频卡口信息数据集
	TollgateObjectList *TollgateListObject `json:",omitempty"`
	// 车道; 可选; 车道信息数据集
	LaneObjectList *LaneListObject `json:",omitempty"`
	// 设备; 可选; 设备信息数据集
	DeviceList *APEListObject `json:",omitempty"`
	// 设备状态; 可选; 该通知针对批量订阅方式
	DeviceStatusList *APEStatusListObject `json:",omitempty"`
	// 采集系统; 可选; 设备网管信息数据集
	APSObjectList *APSListObject `json:",omitempty"`
	// 采集系统状态; 可选; 该通知针对批量订阅方式
	APSStatusObjectList *APSStatusListObject `json:",omitempty"`
	// 人员信息; 可选; 人员信息数据集
	PersonObjectList *PersonListObject `json:",omitempty"`
	// 没有 人脸信息; 可选; 人脸信息数据集
	FaceObjectList *FaceListObject `json:",omitempty"`
	// 机动车信息; 可选; 机动车(过车)信息数据集
	MotorVehicleObjectList *MotorVehicleListObject `json:",omitempty"`
	// 非机动车信息; 可选; 非机动车数据集
	NonMotorVehicleObjectList *NonMotorVehicleListObject `json:",omitempty"`
	// 物品信息; 可选; 物品列表
	ThingObjectList *ThingListObject `json:",omitempty"`
	// 场景信息; 可选; 场景列表
	SceneObjectList *SceneListObject `json:",omitempty"`
	// 数据分类标签
	DataClassTabObjectList *DataClassTabListObject `json:",omitempty"`
	// 更新项目
	ExecuteOperation ExecuteOperationType

	//来源视图库 id
	SourceViewID string `json:"-"`
}

// 批量创建通知请求
type CreateSubscribeNotificationArrReq struct {
	SubscribeNotificationListObject struct {
		SubscribeNotificationObject []*SubscribeNotification
	}
}

type GetSubscribeNotificationArrResp struct {
	//PageRecordNum                   int
	//StartNum                        int
	//TotalNum                        int
	SubscribeNotificationListObject struct {
		SubscribeNotificationObject []*SubscribeNotification
	}
}
